package com.qf.student.dao.impl;

import com.qf.student.dao.IDeptDao;
import com.qf.student.entity.Dept;
import com.qf.student.util.DBUtils;

import java.util.List;

/**
 * @version1.0
 * @auth dmh
 */
public class DeptDaoImpl implements IDeptDao {
    /**
     * 底层增加部门数据的方法
     * @param dept
     * @return
     */
    @Override
    public int insert(Dept dept) {
        String sql = "insert into dept(deptno,dname,loc) values(?,?,?);";
        // 1.准备一个Buffer，把多个爱好用逗号隔开的方式写到buffer里面
//        StringBuffer stringBuffer=new StringBuffer();
//        List<String> strings= student.getLoves();
//        for (String s : strings) {
//            stringBuffer.append(s).append(",");
//        }
        return DBUtils.write(sql, dept.getDeptno(), dept.getDname(), dept.getLoc());
    }

    /**
     * 底层通过查找id来修改部门数据的方法
     * @param dept
     * @return
     */
    @Override
    public int updateById(Dept dept) {
        String sql = "update dept set deptno = ?,dname = ?,loc = ? where deptno = ?";
        return DBUtils.write(sql, dept.getDeptno(), dept.getDname(), dept.getLoc(),dept.getDeptno());
    }

    /**
     * 底层通过id来查询指定部门数据的方法
     * @param deptno
     * @return
     */
    @Override
    public Dept selectById(Integer deptno) {
        String sql = "select * from dept where deptno = ?";
        return DBUtils.readOne(sql, Dept.class, deptno);
    }

    /**
     * 底层根据id来删除部门数据的方法
     * @param deptno
     * @return
     */
    @Override
    public int deleteById(Integer deptno) {
        String sql = "delete from dept where deptno = ?";
        return DBUtils.write(sql, deptno);
    }

    /**
     * 底层查询部门列表的方法
     * @return
     */
    @Override
    public List<Dept> selectList() {
        String sql = "select * from dept";
        return DBUtils.readList(sql, Dept.class);
    }

    @Override
    public Dept selectByName(String dname) {
        String sql = "select * from dept where dname = ?";
        return DBUtils.readOne(sql, Dept.class, dname);
    }
}
